/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package bankowosc;

import bankowosc.dane.Klient;
import bankowosc.dane.Polecenie_przelewu;
import bankowosc.dane.Rachunek;
import bankowosc.dane.Waluta;
import bankowosc.dane.Wniosek;
import bankowosc.polaczenie.KlientBD;
import bankowosc.polaczenie.RachunekBD;
import bankowosc.polaczenie.TransakcjeDB;
import bankowosc.polaczenie.UmowaBD;
import bankowosc.polaczenie.WalutaBD;
import bankowosc.polaczenie.WniosekDB;
import bankowosc.polaczenie.polacz;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartFrame;
import org.jfree.chart.ChartPanel;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.DateAxis;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.plot.XYPlot;
import org.jfree.data.time.Day;
import org.jfree.data.time.TimeSeries;
import org.jfree.data.time.TimeSeriesCollection;
import org.jfree.data.xy.XYSeries;
import org.jfree.data.xy.XYSeriesCollection;
import org.omg.CORBA.AnySeqHelper;

/**
 *
 * @author Cyga
 */
public class Szczegoly extends javax.swing.JFrame {
    Waluta w;
    polacz p = new polacz();
    Rachunek r ;
    Klient k;
    Float srednia;
    Klient wspolwlascicieln;
    Klient wlascicieln;
    TablicaHistoria t = new TablicaHistoria();
    TablicaWnioski tw = new TablicaWnioski();
    XYSeries series = new XYSeries("XYGraph");
    TransakcjeDB tr = new TransakcjeDB();
    WniosekDB wdn = new WniosekDB();
    ArrayList<Polecenie_przelewu> przelewy = new ArrayList<Polecenie_przelewu>();
    public static boolean wychodzace,przychodzace,oczekujaceonly;
            
    /**
     * Creates new form Szczegoly
     */
    public Szczegoly(Rachunek r, Klient k) {
        p.laczZBD();
        UmowaBD u = new UmowaBD();
        RachunekBD rach = new RachunekBD();
        KlientBD kli = new KlientBD();
        WalutaBD wb = new WalutaBD();
        
        this.r = r;
        this.k=kli.zaloguj(p, k.getId_klienta(), k.getHaslo());
        this.r=rach.pobierzRachunek(p, r);
        this.t.nrRachunku=rach.pobierzRachunek(p, r).getNr_rachunku();
           try{
                    this.wspolwlascicieln= u.pobierzWspolwlasciciela(p, r.getNr_rachunku());
                     System.out.println(wspolwlascicieln.getNazwisko());
                     this.wlascicieln =u.pobierzWlasciciela(p, r.getNr_rachunku());
                }
                catch(Exception e){
                    wspolwlascicieln.setImie("brak");
                    wspolwalscicielWartosc.setText("brak");
                System.out.println("null");
                }
           this.w=wb.pobierzWaluteRachunku(p, r.getId_waluty());
        initComponents();
       
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel1 = new javax.swing.JPanel();
        Nazwa_konta = new javax.swing.JLabel();
        wartosc_nazwa_konta = new javax.swing.JLabel();
        nr_rachunku = new javax.swing.JLabel();
        wartosc_nr_rachunku = new javax.swing.JLabel();
        Saldo = new javax.swing.JLabel();
        wartosc_saldo = new javax.swing.JLabel();
        dostepne_srodki = new javax.swing.JLabel();
        wartosc_srodki = new javax.swing.JLabel();
        w_roczny_button = new javax.swing.JButton();
        w_miesieczny_button = new javax.swing.JButton();
        w_tygodniowy_button = new javax.swing.JButton();
        w_od_do_button = new javax.swing.JButton();
        od_label = new javax.swing.JLabel();
        do_label = new javax.swing.JLabel();
        wnioski_button = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        historiaTabela = new javax.swing.JTable();
        jDateChooser1 = new com.toedter.calendar.JDateChooser();
        jDateChooser2 = new com.toedter.calendar.JDateChooser();
        saldoPoczatkowe = new javax.swing.JLabel();
        saldoKoncowe = new javax.swing.JLabel();
        sPoczatkowe = new javax.swing.JLabel();
        sKoncowe = new javax.swing.JLabel();
        sredniaOgolna = new javax.swing.JLabel();
        wartoscSrOg = new javax.swing.JLabel();
        wlasciciel = new javax.swing.JLabel();
        Wspolwlasciciel = new javax.swing.JLabel();
        wlascicielWartosc = new javax.swing.JLabel();
        wspolwalscicielWartosc = new javax.swing.JLabel();
        czyWychodzace = new javax.swing.JCheckBox();
        czyPrzychodzace = new javax.swing.JCheckBox();
        oczekujace = new javax.swing.JCheckBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setMinimumSize(new java.awt.Dimension(900, 650));

        jPanel1.setLayout(new FlowLayout());
        /*
        series.add(1, 1);
        series.add(1, 2);
        series.add(2, 4);
        series.add(3, 4);
        series.add(4, 2);
        series.add(5, 9);
        series.add(6, 10);
        XYSeriesCollection dataset = new XYSeriesCollection();
        dataset.addSeries(series);
        //Tworzymy wykres XY
        JFreeChart chart = ChartFactory.createXYLineChart(
            "Wykres XY",//Tytuł
            "x- Lable", // x-axis Opis
            "y- Lable", // y-axis Opis
            dataset, // Dane
            PlotOrientation.VERTICAL, // Orjentacja wykresu /HORIZONTAL
            true, // pozkaż legende
            true, // podpowiedzi tooltips
            false
        );
        ChartPanel frame1 = new ChartPanel(chart);

        frame1.setLocation(450, 10);
        jPanel1.setVisible(true);
        frame1.setSize(500,300);

        jPanel1.add (frame1);
        frame1.setVisible(true);

        */
        // Code of sub-components - not shown here

        // Layout setup code - not shown here

        // Code adding the component to the parent container - not shown here

        Nazwa_konta.setText("Rodzaj Rachunku");

        if(r.getId_rodzaju_rachunku()==1)
        wartosc_nazwa_konta.setText("ROR");
        else
        wartosc_nazwa_konta.setText("inny niż ROR");

        nr_rachunku.setText("Nr Rachunku:");

        wartosc_nr_rachunku.setText(r.getNr_rachunku().toString());

        Saldo.setText("Saldo bieżące:");

        String saldo = Float.toString(r.getSaldo_biezace());
        wartosc_saldo.setText(saldo);

        dostepne_srodki.setText("Dostępne Środki:");

        String srodki = Float.toString(r.getSaldo_dostepne());
        wartosc_srodki.setText(srodki);

        w_roczny_button.setLabel("Historia Roczna");
        w_roczny_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                w_roczny_buttonActionPerformed(evt);
            }
        });

        w_miesieczny_button.setLabel("Historia Miesięczna");
        w_miesieczny_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                w_miesieczny_buttonActionPerformed(evt);
            }
        });

        w_tygodniowy_button.setLabel("Historia Tygodniowa");
        w_tygodniowy_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                w_tygodniowy_buttonActionPerformed(evt);
            }
        });

        w_od_do_button.setLabel("Historia");
        w_od_do_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                w_od_do_buttonActionPerformed(evt);
            }
        });

        od_label.setText("od: ");

        do_label.setText("do: ");

        wnioski_button.setText("Wnioski");
        wnioski_button.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                wnioski_buttonActionPerformed(evt);
            }
        });

        historiaTabela.setModel(t);
        jScrollPane1.setViewportView(historiaTabela);

        saldoPoczatkowe.setText("Saldo początkowe: ");

        saldoKoncowe.setText("Saldo końcowe: ");

        sPoczatkowe.setText("0");

        sKoncowe.setText("0");

        sredniaOgolna.setText("Średnia wartość przelewu:");

        wartoscSrOg.setText("0");

        wlasciciel.setText("Właściciel:");

        Wspolwlasciciel.setText("Współwłaściciel:");

        wlascicielWartosc.setText(wlascicieln.getImie()+" "+wlascicieln.getNazwisko());

        if(wspolwlascicieln.getImie()==null){
            wspolwalscicielWartosc.setText("brak");
        }
        else{
            wspolwalscicielWartosc.setText(wspolwlascicieln.getImie()+" "+wspolwlascicieln.getNazwisko());
        }

        czyWychodzace.setText("Wychodzące");
        czyWychodzace.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                czyWychodzaceItemStateChanged(evt);
            }
        });
        czyWychodzace.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                czyWychodzaceActionPerformed(evt);
            }
        });

        czyPrzychodzace.setText("Przychodzące");
        czyPrzychodzace.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                czyPrzychodzaceItemStateChanged(evt);
            }
        });
        czyPrzychodzace.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                czyPrzychodzaceActionPerformed(evt);
            }
        });

        oczekujace.setText("Oczekujące");
        oczekujace.addItemListener(new java.awt.event.ItemListener() {
            public void itemStateChanged(java.awt.event.ItemEvent evt) {
                oczekujaceItemStateChanged(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel1Layout.createSequentialGroup()
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(Nazwa_konta)
                                            .addComponent(nr_rachunku))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(w_roczny_button)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                                .addComponent(w_tygodniowy_button, javax.swing.GroupLayout.PREFERRED_SIZE, 141, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(wartosc_saldo)
                                    .addComponent(dostepne_srodki)
                                    .addComponent(wartosc_nazwa_konta)
                                    .addComponent(wartosc_nr_rachunku)
                                    .addComponent(Saldo)
                                    .addComponent(wartosc_srodki)
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addGap(206, 206, 206)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(Wspolwlasciciel)
                                            .addComponent(wlasciciel))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(wspolwalscicielWartosc)
                                            .addComponent(wlascicielWartosc, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(czyWychodzace)
                                        .addGap(36, 36, 36)
                                        .addComponent(czyPrzychodzace)
                                        .addGap(18, 18, 18)
                                        .addComponent(oczekujace))
                                    .addGroup(jPanel1Layout.createSequentialGroup()
                                        .addComponent(w_od_do_button, javax.swing.GroupLayout.PREFERRED_SIZE, 107, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(5, 5, 5)
                                        .addComponent(od_label)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(w_miesieczny_button, javax.swing.GroupLayout.PREFERRED_SIZE, 122, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addGroup(jPanel1Layout.createSequentialGroup()
                                                .addComponent(jDateChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, 133, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addGap(20, 20, 20)
                                                .addComponent(do_label)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jDateChooser2, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                                .addGap(0, 0, Short.MAX_VALUE)))
                        .addGap(38, 38, 38))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(wnioski_button, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 506, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGap(10, 10, 10)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(sredniaOgolna)
                            .addComponent(saldoPoczatkowe, javax.swing.GroupLayout.PREFERRED_SIZE, 108, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addComponent(sPoczatkowe, javax.swing.GroupLayout.PREFERRED_SIZE, 75, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(73, 73, 73)
                                .addComponent(saldoKoncowe)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addComponent(sKoncowe, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addComponent(wartoscSrOg, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addContainerGap()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(Nazwa_konta)
                            .addComponent(wlasciciel)
                            .addComponent(wlascicielWartosc))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(wartosc_nazwa_konta)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(nr_rachunku)
                            .addComponent(Wspolwlasciciel)
                            .addComponent(wspolwalscicielWartosc))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(wartosc_nr_rachunku)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Saldo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(wartosc_saldo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(dostepne_srodki)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(wartosc_srodki)
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(w_tygodniowy_button, javax.swing.GroupLayout.DEFAULT_SIZE, 39, Short.MAX_VALUE)
                            .addComponent(w_roczny_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(w_miesieczny_button, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(24, 24, 24)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(od_label)
                                    .addComponent(w_od_do_button, javax.swing.GroupLayout.PREFERRED_SIZE, 38, javax.swing.GroupLayout.PREFERRED_SIZE)))
                            .addGroup(jPanel1Layout.createSequentialGroup()
                                .addGap(31, 31, 31)
                                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(jDateChooser1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(do_label)
                                    .addComponent(jDateChooser2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addGap(18, 18, 18)
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(czyWychodzace)
                            .addComponent(czyPrzychodzace)
                            .addComponent(oczekujace))
                        .addGap(36, 36, 36)
                        .addComponent(wnioski_button, javax.swing.GroupLayout.PREFERRED_SIZE, 41, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(saldoPoczatkowe)
                    .addComponent(saldoKoncowe)
                    .addComponent(sPoczatkowe)
                    .addComponent(sKoncowe))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(sredniaOgolna)
                    .addComponent(wartoscSrOg))
                .addGap(0, 154, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGap(87, 87, 87))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void wnioski_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_wnioski_buttonActionPerformed
        // TODO add your handling code here:
        WniosekDB wn = new WniosekDB();
        ArrayList<Wniosek> wnioski = new ArrayList();
        wnioski= wn.pobierzWniosek(p, k.getId_klienta());
        for (Wniosek wniosek : wnioski) {
            System.out.println("w= "+wniosek.getData());
        }
        historiaTabela.setModel(tw);
        tw.setWnioski(wdn.pobierzWniosek(p,k.getId_klienta() ));
        tw.fireTableDataChanged();
    }//GEN-LAST:event_wnioski_buttonActionPerformed

    private void w_od_do_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_w_od_do_buttonActionPerformed
        // TODO add your handling code here:
        ArrayList<Polecenie_przelewu> poleceniaprzychodzace = new ArrayList<Polecenie_przelewu>();
        ArrayList<Polecenie_przelewu> poleceniawychodzace = new ArrayList<Polecenie_przelewu>();
        historiaTabela.setModel(t);
        Integer rok,miesiac,dzien;
        rok=jDateChooser1.getDate().getYear()+1900;
        miesiac=jDateChooser1.getDate().getMonth()+1;
        dzien=jDateChooser1.getDate().getDate();
        String dataod =rok.toString()+"-"+miesiac.toString()+"-"+dzien;
        rok=jDateChooser2.getDate().getYear()+1900;
        miesiac=jDateChooser2.getDate().getMonth()+1;
        dzien=jDateChooser2.getDate().getDate();
        String datado =rok.toString()+"-"+miesiac.toString()+"-"+dzien;
        float sumaWychodzacych=0;
        float sumaPrzychodzacych=0;
        
        
        poleceniawychodzace=tr.pobierz_przelewy_od_do_wychodzace(p, r.getNr_rachunku(), dataod, datado);
        poleceniaprzychodzace=tr.pobierz_przelewy_od_do_przychodzace(p, r.getNr_rachunku(), dataod, datado);
        
        for (Polecenie_przelewu polecenie_przelewu : poleceniawychodzace) {
            sumaWychodzacych=sumaWychodzacych+polecenie_przelewu.getWartosc();
        }
          for (Polecenie_przelewu polecenie_przelewu : poleceniaprzychodzace) {
            sumaPrzychodzacych=sumaPrzychodzacych+polecenie_przelewu.getWartosc();
        }
          float sumaK=new Float(tr.pobierz_przelewy_od_do_saldo_poczatkowe(p, r.getNr_rachunku(), dataod, datado))+(sumaPrzychodzacych-sumaWychodzacych);
          sKoncowe.setText(sumaK+w.getSkrot_waluty());
        try{
            System.out.println("d1: "+dataod+"d2:"+  datado);
             t.setWaluta(w.getSkrot_waluty());
               if(oczekujaceonly==true){
                  t.setPrzelewy(tr.pobierz_przelewy_od_do_oczekujace(p, r.getNr_rachunku(),dataod,datado));
            przelewy=tr.pobierz_przelewy_od_do_oczekujace(p, r.getNr_rachunku(), dataod, datado);
             }
               else if(wychodzace==true&&przychodzace==false&&oczekujaceonly==false){
            t.setPrzelewy(tr.pobierz_przelewy_od_do_wychodzace(p, r.getNr_rachunku(),dataod,datado));
             przelewy=tr.pobierz_przelewy_od_do_wychodzace(p, r.getNr_rachunku(), dataod, datado);
             }
             else if(wychodzace==false&&przychodzace==true&&oczekujaceonly==false){
                  t.setPrzelewy(tr.pobierz_przelewy_od_do_przychodzace(p, r.getNr_rachunku(),dataod,datado));
            przelewy=tr.pobierz_przelewy_od_do_przychodzace(p, r.getNr_rachunku(), dataod, datado);
             }
             
             else{
                 t.setPrzelewy(tr.pobierz_przelewy_od_do(p, r.getNr_rachunku(),dataod,datado));
            przelewy=tr.pobierz_przelewy_od_do(p, r.getNr_rachunku(), dataod, datado);
             }
           
            t.fireTableDataChanged();
            float suma=0;
            for (Polecenie_przelewu polecenie_przelewu : przelewy) {
                suma=suma+polecenie_przelewu.getWartosc();
            }
            
            sPoczatkowe.setText(tr.pobierz_przelewy_od_do_saldo_poczatkowe(p, r.getNr_rachunku(), dataod, datado)+w.getSkrot_waluty());
              if(suma==0){
            wartoscSrOg.setText(0+w.getSkrot_waluty());
            }
            else
            wartoscSrOg.setText((suma/przelewy.size())+w.getSkrot_waluty());
        }
        catch(Exception e){

        }
    }//GEN-LAST:event_w_od_do_buttonActionPerformed

    private void w_tygodniowy_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_w_tygodniowy_buttonActionPerformed
        // TODO add your handling code here:
        historiaTabela.setModel(t);
         t.setWaluta(w.getSkrot_waluty());
         if(oczekujaceonly==true){
                  t.setPrzelewy(tr.pobierz_przelewy_tygodniowe_oczekujace(p, r.getNr_rachunku()));
            przelewy=tr.pobierz_przelewy_tygodniowe_oczekujace(p, r.getNr_rachunku());
             }
         else if(wychodzace==true&&przychodzace==false){
            t.setPrzelewy(tr.pobierz_przelewy_tygodniowe_wychodzace(p, r.getNr_rachunku()));
        przelewy=tr.pobierz_przelewy_tygodniowe_wychodzace(p, r.getNr_rachunku());
    }
          else if(wychodzace==false&&przychodzace==true){
                   t.setPrzelewy(tr.pobierz_przelewy_tygodniowe_przychodzace(p, r.getNr_rachunku()));
          przelewy=tr.pobierz_przelewy_tygodniowe_przychodzace(p, r.getNr_rachunku());
    }
          else{
                 t.setPrzelewy(tr.pobierz_przelewy_tygodniowe(p, r.getNr_rachunku()));
                 przelewy=tr.pobierz_przelewy_tygodniowe(p, r.getNr_rachunku());
               }
         t.fireTableDataChanged();
        String spocz= new String(tr.pobierz_przelewy_tygodniowe_saldo_poczatkowe(p, r.getNr_rachunku())+w.getSkrot_waluty());
        sPoczatkowe.setText(spocz);
        sKoncowe.setText(r.getSaldo_biezace()+w.getSkrot_waluty());
        
          float suma=0;
            for (Polecenie_przelewu polecenie_przelewu : przelewy) {
                suma=suma+polecenie_przelewu.getWartosc();
            }
              if(suma==0){
            wartoscSrOg.setText(0+w.getSkrot_waluty());
            }
            else
             wartoscSrOg.setText((suma/przelewy.size())+w.getSkrot_waluty());
    }//GEN-LAST:event_w_tygodniowy_buttonActionPerformed

    private void w_miesieczny_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_w_miesieczny_buttonActionPerformed
        // TODO add your handling code here:
        historiaTabela.setModel(t);
         t.setWaluta(w.getSkrot_waluty());
         
           if(oczekujaceonly==true){
                  t.setPrzelewy(tr.pobierz_przelewy_miesieczne_oczekujace(p, r.getNr_rachunku()));
            przelewy=tr.pobierz_przelewy_miesieczne_oczekujace(p, r.getNr_rachunku());
             }
         else  if(wychodzace==true&&przychodzace==false){
           t.setPrzelewy(tr.pobierz_przelewy_miesieczne_wychodzace(p, r.getNr_rachunku()));
           przelewy=tr.pobierz_przelewy_miesieczne_wychodzace(p, r.getNr_rachunku());
           }
        else if(wychodzace==false&&przychodzace==true){
                t.setPrzelewy(tr.pobierz_przelewy_miesieczne_przychodzace(p, r.getNr_rachunku()));
                przelewy=tr.pobierz_przelewy_miesieczne_przychodzace(p, r.getNr_rachunku());
    }
        else{
            t.setPrzelewy(tr.pobierz_przelewy_miesieczne(p, r.getNr_rachunku()));
          przelewy=tr.pobierz_przelewy_miesieczne(p, r.getNr_rachunku());
    }
         t.fireTableDataChanged();
        sPoczatkowe.setText(tr.pobierz_przelewy_miesieczne_saldo_poczatkowe(p, r.getNr_rachunku())+w.getSkrot_waluty());
        sKoncowe.setText(r.getSaldo_biezace()+w.getSkrot_waluty());
          float suma=0;
            for (Polecenie_przelewu polecenie_przelewu : przelewy) {
                suma=suma+polecenie_przelewu.getWartosc();
            }
              if(suma==0){
            wartoscSrOg.setText(0+w.getSkrot_waluty());
            }
            else
             wartoscSrOg.setText((suma/przelewy.size())+w.getSkrot_waluty());
    }//GEN-LAST:event_w_miesieczny_buttonActionPerformed

    private void w_roczny_buttonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_w_roczny_buttonActionPerformed
        // TODO add your handling code here:
        historiaTabela.setModel(t);
         t.setWaluta(w.getSkrot_waluty());
              if(oczekujaceonly==true){
                  t.setPrzelewy(tr.pobierz_przelewy_roczne_oczekujace(p, r.getNr_rachunku()));
            przelewy=tr.pobierz_przelewy_roczne_oczekujace(p, r.getNr_rachunku());
             }
              else if(wychodzace==true&&przychodzace==false){
       t.setPrzelewy(tr.pobierz_przelewy_roczne_wychodzace(p, r.getNr_rachunku()));
        przelewy=tr.pobierz_przelewy_roczne_wychodzace(p, r.getNr_rachunku());
             }
          else if(wychodzace==false&&przychodzace==true){
         t.setPrzelewy(tr.pobierz_przelewy_roczne_przychodzace(p, r.getNr_rachunku()));
          przelewy=tr.pobierz_przelewy_roczne_przychodzace(p, r.getNr_rachunku());
          }
          else{
           t.setPrzelewy(tr.pobierz_przelewy_roczne(p, r.getNr_rachunku()));
         przelewy=tr.pobierz_przelewy_roczne(p, r.getNr_rachunku());
    }
        t.fireTableDataChanged();
        sPoczatkowe.setText(tr.pobierz_przelewy_roczne_saldo_poczatkowe(p, r.getNr_rachunku())+w.getSkrot_waluty());
        sKoncowe.setText(r.getSaldo_biezace()+w.getSkrot_waluty());
        
          float suma=0;
            for (Polecenie_przelewu polecenie_przelewu : przelewy) {
                suma=suma+polecenie_przelewu.getWartosc();
            }
            if(suma==0){
            wartoscSrOg.setText(0+w.getSkrot_waluty());
            }
            else
             wartoscSrOg.setText((suma/przelewy.size())+w.getSkrot_waluty());
    }//GEN-LAST:event_w_roczny_buttonActionPerformed

    private void czyWychodzaceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_czyWychodzaceActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_czyWychodzaceActionPerformed

    private void czyPrzychodzaceActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_czyPrzychodzaceActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_czyPrzychodzaceActionPerformed
   
    private void czyPrzychodzaceItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_czyPrzychodzaceItemStateChanged
        // TODO add your handling code here:
         przychodzace=!przychodzace;
         
    }//GEN-LAST:event_czyPrzychodzaceItemStateChanged

    private void czyWychodzaceItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_czyWychodzaceItemStateChanged
        // TODO add your handling code here:
         wychodzace=!wychodzace;
    }//GEN-LAST:event_czyWychodzaceItemStateChanged

    private void oczekujaceItemStateChanged(java.awt.event.ItemEvent evt) {//GEN-FIRST:event_oczekujaceItemStateChanged
        // TODO add your handling code here:
        oczekujaceonly=!oczekujaceonly;
    }//GEN-LAST:event_oczekujaceItemStateChanged

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Szczegoly.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Szczegoly.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Szczegoly.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Szczegoly.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                //new Szczegoly().setVisible(true);
            }
        });
    }
    private XYSeriesCollection dataset ;
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JLabel Nazwa_konta;
    private javax.swing.JLabel Saldo;
    private javax.swing.JLabel Wspolwlasciciel;
    private javax.swing.JCheckBox czyPrzychodzace;
    private javax.swing.JCheckBox czyWychodzace;
    private javax.swing.JLabel do_label;
    private javax.swing.JLabel dostepne_srodki;
    private javax.swing.JTable historiaTabela;
    private com.toedter.calendar.JDateChooser jDateChooser1;
    private com.toedter.calendar.JDateChooser jDateChooser2;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JLabel nr_rachunku;
    private javax.swing.JCheckBox oczekujace;
    private javax.swing.JLabel od_label;
    private javax.swing.JLabel sKoncowe;
    private javax.swing.JLabel sPoczatkowe;
    private javax.swing.JLabel saldoKoncowe;
    private javax.swing.JLabel saldoPoczatkowe;
    private javax.swing.JLabel sredniaOgolna;
    private javax.swing.JButton w_miesieczny_button;
    private javax.swing.JButton w_od_do_button;
    private javax.swing.JButton w_roczny_button;
    private javax.swing.JButton w_tygodniowy_button;
    private javax.swing.JLabel wartoscSrOg;
    private javax.swing.JLabel wartosc_nazwa_konta;
    private javax.swing.JLabel wartosc_nr_rachunku;
    private javax.swing.JLabel wartosc_saldo;
    private javax.swing.JLabel wartosc_srodki;
    private javax.swing.JLabel wlasciciel;
    private javax.swing.JLabel wlascicielWartosc;
    private javax.swing.JButton wnioski_button;
    private javax.swing.JLabel wspolwalscicielWartosc;
    // End of variables declaration//GEN-END:variables
}
